.TH std::future::wait 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::future::wait \- std::future::wait

.SH Synopsis
   void wait() const;  \fI(since C++11)\fP

   Blocks until the result becomes available. valid() == true after the call.

   The behavior is undefined if valid() == false before the call to this function.

.SH Parameters

   \fI(none)\fP

.SH Return value

   \fI(none)\fP

.SH Exceptions

   May throw implementation-defined exceptions.

.SH Notes

   The implementations are encouraged to detect the case when valid() == false before
   the call and throw a std::future_error with an error condition of
   std::future_errc::no_state.

.SH Example


// Run this code

 #include <chrono>
 #include <future>
 #include <iostream>
 #include <thread>

 int fib(int n)
 {
     if (n < 3)
         return 1;
     else
         return fib(n - 1) + fib(n - 2);
 }

 int main()
 {
     std::future<int> f1 = std::async(std::launch::async, []() { return fib(40); });
     std::future<int> f2 = std::async(std::launch::async, []() { return fib(43); });

     std::cout << "waiting... " << std::flush;
     const auto start = std::chrono::system_clock::now();

     f1.wait();
     f2.wait();

     const auto diff = std::chrono::system_clock::now() - start;
     std::cout << std::chrono::duration<double>(diff).count() << " seconds\\n";

     std::cout << "f1: " << f1.get() << '\\n';
     std::cout << "f2: " << f2.get() << '\\n';
 }

.SH Possible output:

 waiting... 1.61803 seconds
 f1: 102334155
 f2: 433494437

.SH See also

              waits for the result, returns if it is not available for the specified
   wait_for   timeout duration
              \fI(public member function)\fP
              waits for the result, returns if it is not available until specified time
   wait_until point has been reached
              \fI(public member function)\fP
